package org.robert.export_client.aop;

import org.apache.commons.lang3.StringUtils;
import org.robert.export_client.excel.metadata.ComparisonEnum;

import java.lang.annotation.*;

/**
 * ExcelAssert: 用于某个字段依赖于某个值或者某个字段的值
 *   例如：desc 字段，当state字段 = 1 是获取，否则为空
 *
 * @author zhaoshengtao
 * @date 2024/01/31
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ExcelDepend {

    /**
     * 依赖值 必填
     */
    String value() default StringUtils.EMPTY;

    /**
     * 依赖字段，选填
     */
    String name() default StringUtils.EMPTY;

    /**
     * 比较类型 大于。。。等于,默认等于
     */
    ComparisonEnum type() default ComparisonEnum.EQUAL;

    /**
     * 值类型
     */
    Class<?> valueType() default String.class;

    /**
     * 依赖值，小
     */
    String minValue() default StringUtils.EMPTY;

    /**
     * 赋值是否固定值
     */
    boolean isFixed() default false;

    /**
     * 如果是固定值, 这个就是满足条件后的填充值
     */
    String fixedValue() default StringUtils.EMPTY;
}
